package com.xiaolun.nio;

import java.io.FileOutputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

public class NIOFileChannel01 {
	public static void main(String[] args) throws Exception {

		String str = "hello,尚硅谷";
		/**
		 * NIO是对Java原生IO的包装，因此会用到原生的Java的原生知识。
		 * 创建一个输出流->（包装到）channel
		 */
		FileOutputStream fileOutputStream = new FileOutputStream("d:\\file01.txt");

		/**
		 * 通过 fileOutputStream 获取 对应的 FileChannel
		 * 这个 fileChannel 真实 类型是  FileChannelImpl
		 */
		FileChannel fileChannel = fileOutputStream.getChannel();

		//创建一个缓冲区 ByteBuffer
		ByteBuffer byteBuffer = ByteBuffer.allocate(1024);

		//将 str 放入 byteBuffer
		byteBuffer.put(str.getBytes());

		//对byteBuffer 进行flip
		byteBuffer.flip();

		//将byteBuffer 数据写入到 fileChannel
		fileChannel.write(byteBuffer);
		fileOutputStream.close();
	}
}
